package de.mnit.schnipsel.zentral;

import java.io.InputStream;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;

import de.mnit.basis.fehler.system.F_Sys_InOut;
import de.mnit.basis.swt.dialog.Dialog_AnwInfo;
import de.mnit.basis.swt.dialog.SWT_Fehler;
import de.mnit.basis.swt.element.steuer.rollbar.gruppe.bild.deko.S_Fenster;
import de.mnit.basis.sys.datei.JarZugriff;
import de.mnit.basis.sys.sprache.S;
import de.mnit.basis.sys.stream.StreamHilfe;
import de.mnit.basis.sys.version.VersionsInfo;
import de.mnit.schnipsel.swt.dialog.Dialog_Ausgleich;

/**
 * @author Michael Nitsche
 * 01.04.2009	Erstellt
 * 16.02.2010	Umgebaut auf Dialog_AnwInfo
 */
public class SC_Info {

	private static final S s=new S(SC_Info.class);
	public static final String TEMPLATE_PROG="/jar/text/info.txt";


	public static void infoSchnipsel(S_Fenster<?> fenster) {
		String text=null;
		InputStream is;
		try {
			is = JarZugriff.gJarStream(TEMPLATE_PROG);
			text=StreamHilfe.liesASCII(is);
			VersionsInfo version=SC_GuiObs.i().anwendung().gVersion();
			text=text.replaceAll("%version%", version==null ? "" : version.zuTextKurz()); //Abfrage, damit man K_Info offline testen kann!
			text=text.replaceAll("%build%", version==null ? "" : version.zuText_BuildDatum()); //Abfrage, damit man K_Info offline testen kann!
		}
		catch(F_Sys_InOut e) {
			SWT_Fehler.zeig(e, s.t("Text konnte nicht geladen werden!"), false);
		}
		if(text!=null)
			(new Dialog_AnwInfo(text)).oeffnen(fenster);
	}

	public static void infoAusgleich(S_Fenster<?> fenster) {
		(new Dialog_Ausgleich()).oeffnen(fenster);
	}

	public static void infoDBAbbruch() {
		MessageBox box=new MessageBox(SC_GuiObs.i().hauptfenster().swt(), SWT.ICON_WARNING | SWT.OK);
		String text=s.t("Schnipsel ist derzeit für die Arbeit mit einer lokalen Datenbank konfiguriert. " +
			"Um Datenverlust zu vermeiden, darf diese nur einmal geöffnet werden!")
			+"\n\n" +
			s.t("Da bereits eine weitere Instanz auf diesem Computer entdeckt wurde, wird das Programm nun beendet!");
		box.setMessage(text);
		box.setText(s.t("Achtung!"));
		box.open();
	}

	public static void infoStartAbbruch() {
		MessageBox box=new MessageBox(new Shell(), SWT.ICON_WARNING | SWT.OK);
		box.setMessage("Die Anwendung wird wieder geschlossen!");
		box.setText(s.t("Achtung!"));
		box.open();
	}

}
